<template>
  <el-table-column :sortable="sortable" :prop="property" :label="label" :width="width"
                   class-name="no-padding">
    <template #default="{row, column, $index}">
      <table-checkbox-group :change="change"
                            :property="property" :value="row[property]"
                            :row="row" :options="props.options"></table-checkbox-group>
    </template>
  </el-table-column>
</template>

<script setup lang="ts">
/* eslint-disable */
import TableCheckboxGroup from "./table-checkbox-group.vue";
import {ModifiedMethod} from "@/widget/types";
import {DictionaryItem} from "@/lang/types";

/**
 * 表格行级下拉框
 */
interface Props {
    // 字段名
    property: string
    // 列名
    label: String
    // 数据变化事件
    change?: ModifiedMethod
    // 是否
    sortable?: boolean
    // 组件宽度
    width?: number

    // 文字提示
    placeholder?: string
    // 是否可清除
    clearable?: boolean

    /** 数据字典配置 */
    options: DictionaryItem[] | string
}

const props = withDefaults(defineProps<Props>(), {
    sortable: false,
    placeholder: '请选择',
    clearable: true
})
</script>
